レプリケーション・スキームを定義した後、レプリケーション・スキームに含まれている各データ・ストアのレプリケーション・エージェントを起動できます。
レプリケーション・エージェントは、次の項で説明するように、コマンドラインまたはプログラムから起動および停止することができます。
レプリケーション・エージェントをコマンドラインから起動および停止するには、-repStartまたは-repStopオプションを指定してttAdminユーティリティを使用します。
masterDSNおよびsubscriberDSNというDSNのレプリケーション・エージェントを起動するには、次のように入力します。
ttAdmin -repStart masterDSN ttAdmin -repStart subscriberDSNレプリケーション・エージェントを停止するには、次のように入力します。
ttAdmin -repStop masterDSN ttAdmin -repStop subscriberDSNまた、ttRepStartおよびttRepStopプロシージャを使用して、ttIsqlコマンドラインからレプリケーション・エージェントを起動および停止することもできます。
masterDSNというDSNのレプリケーション・エージェントを起動および停止するには、次のように入力します。
> ttIsql masterDSN Command> call ttRepStart; Command> call ttRepStop;また、ttAdminユーティリティを使用してレプリケーション再起動ポリシーを設定することもできます。デフォルトでは、このポリシーはmanualです。これによって、前述のようにレプリケーション・エージェントを起動および停止できます。データ・ストアのレプリケーション再起動ポリシーは、alwaysまたはnorestartに設定することもできます。
再起動ポリシー
|
TimesTenデーモンの起動時にレプリケーション・エージェントを起動
|
エラー発生時または無効化が行われた場合にレプリケーション・エージェントを再起動
|
---|---|---|
always | する | する |
manual | しない | する |
norestart | しない | しない |
再起動ポリシーがalwaysの場合、データ・ストアがメモリーにロードされるとレプリケーション・エージェントが自動的に起動されます(データ・ストアがメモリーにロードされるタイミングを指定する方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する項を参照してください)。
ttAdminを使用して、レプリケーション再起動ポリシーをalwaysに設定するには、次のように入力します。
ttAdmin -repPolicy always DSNポリシーをmanualに再設定するには、次のように入力します。
ttAdmin -repPolicy manual DSNエラー発生またはデータ・ストアの無効化の後、manualおよびalwaysの両方のポリシーによってレプリケーション・エージェントが自動的に再起動されます。レプリケーション・エージェントが自動的に再起動されると、多くの場合、データ・ストアへの初期接続になります。たとえば、これは、すべてのアプリケーションの接続を切断する必要がある致命的なエラーが発生した後に行われます。通常、データ・ストアへの初期接続では、最新のチェックポイント・ファイルをロードする必要があり、また、多くの場合リカバリを実行する必要があります。非常に大容量のデータ・ストアの場合、このプロセスに数分かかる場合があります。この間、新しい接続が行われなず、古い接続の切断が終了されないように、データ・ストアでのすべてのアクティビティがブロックされます。また、この結果、すべてのアプリケーションの接続が切断されるまで古いデータ・ストアが存続するため、データ・ストアの2つのコピーが同時に存在する場合もあります。初期接続時が重要な非常に大容量のデータ・ストアの場合、新しいデータ・ストアを起動する前にまず古いデータ・ストアが非アクティブになるまで待機する必要がある場合があります。これは、再起動ポリシーnorestartに設定してレプリケーション・エージェントが自動的に再起動されないように指定することで実現できます。
プログラムからデータ・ストアのレプリケーション・エージェントを起動および停止するには、レプリケーション・データ・ストアに接続し、ttRepStartおよびttRepStopプロシージャを使用します。
hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・エージェントを起動および停止するには、次のように入力します。
rc = SQLAllocStmt( hdbc, &hstmt ); rc = SQLExecDirect( hstmt, (SQLCHAR *) "CALL ttRepStart()", SQL_NTS ); rc = SQLExecDirect( hstmt, (SQLCHAR *) "CALL ttRepStop()", SQL_NTS );ttRepPolicySetプロシージャをコールしてプログラムでレプリケーション再起動ポリシーを設定できます。「コマンドラインからのレプリケーション・エージェントの制御」で説明されている方法と同じ方法で、このプロシージャを使用してデータ・ストアの再起動ポリシーをmanual(デフォルト)、alwaysまたはnorestartに設定できます。
hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・ポリシーをalwaysに設定するには、次のように入力します。
rc = SQLAllocStmt( hdbc, &hstmt ); rc = SQLExecDirect( hstmt, (SQLCHAR *) "CALL ttRepPolicy ('always')", SQL_NTS );